package com.joolun.weixin.service;

import java.util.List;
import com.joolun.system.domain.ScrmStaff;
import com.baomidou.mybatisplus.extension.service.IService;
import com.joolun.weixin.entity.StaffVO;


/**
 * 企业微信成员Service接口
 * 
 * @author joolun
 * @date 2025-02-25
 */
public interface IScrmStaffService extends IService<ScrmStaff>
{
    /**
     * 查询企业微信成员
     * 
     * @param id 企业微信成员主键
     * @return 企业微信成员
     */
    public ScrmStaff selectScrmStaffById(Long id);

    /**
     * 查询企业微信成员列表
     * 
     * @param scrmStaff 企业微信成员
     * @return 企业微信成员集合
     */
    public List<ScrmStaff> selectScrmStaffList(ScrmStaff scrmStaff);

    /**
     * 新增企业微信成员
     * 
     * @param scrmStaff 企业微信成员
     * @return 结果
     */
    public int insertScrmStaff(ScrmStaff scrmStaff);

    /**
     * 修改企业微信成员
     * 
     * @param scrmStaff 企业微信成员
     * @return 结果
     */
    public int updateScrmStaff(ScrmStaff scrmStaff);

    /**
     * 批量删除企业微信成员
     * 
     * @param ids 需要删除的企业微信成员主键集合
     * @return 结果
     */
    public int deleteScrmStaffByIds(Long[] ids);

    /**
     * 删除企业微信成员信息
     * 
     * @param id 企业微信成员主键
     * @return 结果
     */
    public int deleteScrmStaffById(Long id);

    /**
     * 同步企业微信员工
     * @param extCorpId
     * @return
     */
    Boolean sync(String extCorpId);

    public ScrmStaff checkExists(Long id);

    ScrmStaff getScrmStaffBySysUserId(Long sysUserId);

    StaffVO translation(ScrmStaff staff);


    List<String> getAllExtId(String extCorpId);

    /**
     * 选择员工时同时选择员工和所在部门
     *
     * @param departmentIds
     * @param staffIds
     * @return
     */
    List<String> getStaffIdsByDepts(String corpId, List<Long> departmentIds, List<String> staffIds);

    }
